package com.lxit.video.dao;

import java.util.List;

import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import com.lxit.video.bean.VideoInfo;

public interface VideoInfoRepository extends JpaRepository<VideoInfo, Integer> {

	/**
	 * 根据视频id查询视频的信息
	 * 
	 * @author JiangLing 2018年1月29日
	 * @param vId
	 *            视频id
	 * @return 视频信息
	 */
	@Query("select v from VideoInfo v where v.videoId= :vId")
	VideoInfo selectByVideoId(@Param("vId") Integer vId);

	/**
	 * 查询当前最新的3个视频
	 * 
	 * @author JiangLing 2018年1月29日
	 * @return 最新3个视频信息集合
	 */
	@Query("select v from VideoInfo v ORDER BY v.createTime DESC")
	List<VideoInfo> selectNewestVideos(Pageable pageable);

	/**
	 * 查询当前最热的3个视频
	 * 
	 * @author JiangLing 2018年1月29日
	 * @return 最热的3个视频信息集合
	 */
	@Query("select v from VideoInfo v ORDER BY v.loveNumber DESC")
	List<VideoInfo> selectHottestVideos(Pageable pageable);

	/**
	 * 根据分类id查询此分类的3个最热视频
	 * 
	 * @author JiangLing 2018年1月29日
	 * @param voTypeId
	 *            分类id
	 * @return 分类的最热的3个视频信息集合
	 */
	@Query("select v from VideoInfo v where v.vTypeId = :voTypeId ORDER BY v.loveNumber DESC")
	List<VideoInfo> selectTypeHottestVideos(@Param("voTypeId") Integer voTypeId,Pageable pageable);

}
